home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / moni14.zip / MONI.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-09-07  |  24KB  |  1,061 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.3O (Encryption type II) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Integer  INTEGER001
  24.     Integer  INTEGER002
  25.     Integer  INTEGER003
  26.     Integer  INTEGER004
  27.     Integer  INTEGER005
  28.     Integer  INTEGER006
  29.     Integer  INTEGER007
  30.     Integer  INTEGER008
  31.     Integer  INTEGER009
  32.     Integer  INTEGER010
  33.     Integer  INTEGER011
  34.     Integer  INTEGER012
  35.     Integer  INTEGER013
  36.     Integer  INTEGER014
  37.     String   STRING001
  38.     String   STRING002
  39.     String   STRING003
  40.     String   STRING004
  41.     String   STRING005
  42.     String   STRING006
  43.     String   STRING007
  44.     String   STRING008
  45.     String   STRING009
  46.     String   STRING010
  47.     String   TSTRING011(15)
  48.     String   TSTRING012(15)
  49.     String   TSTRING013(1)
  50.     String   STRING014
  51.     String   STRING015
  52.     String   STRING016
  53.     String   STRING017
  54.     Word     WORD001
  55.     Word     WORD002
  56.     Int      INT001
  57.     Int      INT002
  58.     Int      INT003
  59.     Int      INT004
  60.     BigStr   BIGSTR001
  61.     BigStr   BIGSTR002
  62.     BigStr   BIGSTR003
  63.     BigStr   BIGSTR004
  64.     BigStr   BIGSTR005
  65.     BigStr   BIGSTR006
  66.     BigStr   BIGSTR007
  67.     BigStr   BIGSTR008
  68.  
  69. ;------------------------------------------------------------------------------
  70.  
  71.     GetUser
  72.     If (U_Sec < SysopSec()) Then
  73.         Log "UltraMoni: Insufficient Security To Use!", 0
  74.         End
  75.     Else
  76.         Log "UltraMoni Entered at " + Left(Time(), 5), 0
  77.     Endif
  78.     If (AnsiOn()) Goto LABEL001
  79.     PrintLn 
  80.     PrintLn "Sorry, this program requires ANSI capability."
  81.     PrintLn 
  82.     Log "UltraMoni: Caller Does Not Have ANSI capability.", 0
  83.     End
  84.     :LABEL001
  85.     BOOLEAN001 = 0
  86.     GetToken INTEGER011
  87.     If (INTEGER011 == 0) INTEGER011 = 60
  88.     GetToken INTEGER009
  89.     If (INTEGER009 == 0) INTEGER009 = 3
  90.     GetToken STRING014
  91.     GetToken STRING003
  92.     BOOLEAN003 = 1
  93.     If (STRING003 <> "CMS") BOOLEAN003 = 0
  94.     If (BOOLEAN003) Then
  95.         STRING008 = ""
  96.         STRING008 = ReadLine(PPEPath() + "MONI.CMS", 1)
  97.         FClose -1
  98.         If (STRING008 == "") Then
  99.             PrintLn 
  100.             PrintLn "MONI.CMS File Not Found!"
  101.             PrintLn 
  102.             End
  103.         Endif
  104.         If (Exist(STRING008 + ".DAT")) Goto LABEL002
  105.         PrintLn 
  106.         PrintLn "CMS Database (", STRING008, ") Not Found!"
  107.         PrintLn 
  108.         End
  109.         :LABEL002
  110.         STRING009 = STRING008
  111.         :LABEL003
  112.         If (Right(STRING009, 1) <> "\") Then
  113.             STRING009 = Left(STRING009, Len(STRING009) - 1)
  114.             Goto LABEL003
  115.             Goto LABEL004
  116.         Endif
  117.         STRING009 = STRING009 + "NOTES\"
  118.         :LABEL004
  119.         STRING017 = STRING008
  120.         STRING008 = STRING008 + ".DAT"
  121.     Endif
  122.     BOOLEAN002 = 0
  123.     BOOLEAN001 = 0
  124.     INT004 = MaxNode()
  125.     INT003 = 1
  126.     STRING004 = "@X1F"
  127.     STRING005 = "@X1F"
  128.     INTEGER001 = 3
  129.     INTEGER002 = 3
  130.     STRING006 = "@X1E "
  131.     TSTRING013(0) = "No "
  132.     TSTRING013(1) = "Yes"
  133.     STRING007 = ReadLine(PCBDat(), 45)
  134.     STRING015 = ReadLine(PCBDat(), 41)
  135.     StartDisp 1
  136.     KbdChkOff
  137.     INT001 = 0
  138.     :LABEL005
  139.     Inc INT001
  140.     STRING003 = ""
  141.     STRING003 = ReadLine(STRING007, INT001)
  142.     If (STRING003 == "") Then
  143.         FClose -1
  144.     Else
  145.         STRING003 = Left(STRING003, Len(STRING003) - 6)
  146.         TSTRING011(INT001) = Left(STRING003, 1)
  147.         STRING003 = Right(STRING003, Len(STRING003) - 4)
  148.         TSTRING012(INT001) = Right(STRING003, Len(STRING003) - InStr(STRING003, ","))
  149.         Goto LABEL005
  150.     Endif
  151.     :LABEL006
  152.     Color 7
  153.     Cls
  154.     PrintLn "@X1E╔═══════════════[@X1F UltraMoni PCB Node Monitoring Utility v1.4 @X1E]════════════════╗@X07"
  155.     PrintLn "@X1E║@X1B #     Status                User                             Reads:         @X1E║@X07"
  156.     PrintLn "@X1E║                                                                             ║@X07"
  157.     PrintLn "@X1E║                                                                             ║@X07"
  158.     PrintLn "@X1E║                                                                             ║@X07"
  159.     PrintLn "@X1E║                                                                             ║@X07"
  160.     PrintLn "@X1E║                                                                             ║@X07"
  161.     PrintLn "@X1E║                                                                             ║@X07"
  162.     PrintLn "@X1E║                                                                             ║@X07"
  163.     PrintLn "@X1E║                                                                             ║@X07"
  164.     PrintLn "@X1E║                                                                             ║@X07"
  165.     PrintLn "@X1E║                                                                             ║@X07"
  166.     PrintLn "@X1E║                                                                             ║@X07"
  167.     PrintLn "@X1E║                                                                             ║@X07"
  168.     PrintLn "@X1E║                                                                             ║@X07"
  169.     PrintLn "@X1E║                                                                             ║@X07"
  170.     PrintLn "@X1E║                                                                             ║@X07"
  171.     PrintLn "@X1E║                                                                             ║@X07"
  172.     PrintLn "@X1E║                                                                             ║@X07"
  173.     PrintLn "@X1E║                                                                             ║@X07"
  174.     PrintLn "@X1E║                                                                             ║@X07"
  175.     PrintLn "@X1E║                                                                             ║@X07"
  176.     Print "@X1E╚══════════════════════════════[@X1F ESC To Quit @X1E]════════════════════════════════╝@X07"
  177.     Gosub LABEL009
  178.     Gosub LABEL012
  179.     INTEGER010 = Time()
  180.     :LABEL007
  181.     STRING001 = Inkey()
  182.     If (STRING001 == Chr(27)) Then
  183.         DefColor
  184.         KbdChkOn
  185.         Cls
  186.         If (!BOOLEAN001 && (Random(2) == 0)) Log "UltraMoni: Please consider registering this PPE!", 0
  187.         Log "UltraMoni Exited at " + Left(Time(), 5), 0
  188.         End
  189.     Endif
  190.     If (STRING001 == "") Then
  191.         Inc WORD002
  192.         If (!BOOLEAN001 && (WORD002 > 45000)) Then
  193.             Gosub LABEL019
  194.             WORD002 = 0
  195.             Goto LABEL006
  196.         Endif
  197.         If ((INTEGER008 + INTEGER009 < Time()) || (Time() < INTEGER008)) Then
  198.             Gosub LABEL009
  199.             Goto LABEL007
  200.         Endif
  201.         If (INTEGER011 <> 999) Then
  202.             If ((INTEGER010 + INTEGER011 < Time()) || (Time() < INTEGER010)) Then
  203.                 :LABEL008
  204.                 INT003 = INT003 + 20
  205.                 STRING003 = ScrText(3, 22, 3, 0)
  206.                 STRING003 = RTrim(STRING003, " ")
  207.                 If (STRING003 == INT004) INT003 = 1
  208.                 INTEGER010 = Time()
  209.                 Gosub LABEL009
  210.                 If ((INTEGER003 == 0) && (STRING014 <> "NOSKIP")) Goto LABEL008
  211.                 Goto LABEL007
  212.             Endif
  213.         Endif
  214.         Goto LABEL007
  215.     Endif
  216.     If (STRING001 == 2) Then
  217.         Inc INT003
  218.         INTEGER010 = Time()
  219.         Gosub LABEL009
  220.         Goto LABEL007
  221.     Endif
  222.     If (STRING001 == 8) Then
  223.         Dec INT003
  224.         INTEGER010 = Time()
  225.         Gosub LABEL009
  226.         Goto LABEL007
  227.     Endif
  228.     If (STRING001 == 3) Then
  229.         INT003 = INT003 + 20
  230.         INTEGER010 = Time()
  231.         Gosub LABEL009
  232.         Goto LABEL007
  233.     Endif
  234.     If (STRING001 == 9) Then
  235.         INT003 = INT003 - 20
  236.         INTEGER010 = Time()
  237.         Gosub LABEL009
  238.         Goto LABEL007
  239.     Endif
  240.     If (STRING001 == 1) Then
  241.         INTEGER002 = INTEGER001
  242.         Inc INTEGER001
  243.         Gosub LABEL012
  244.         Goto LABEL007
  245.     Endif
  246.     If (STRING001 == 7) Then
  247.         INTEGER002 = INTEGER001
  248.         Dec INTEGER001
  249.         Gosub LABEL012
  250.         Goto LABEL007
  251.     Endif
  252.     If (STRING001 == Chr(13)) Then
  253.         STRING003 = ScrText(3, INTEGER001, 3, 0)
  254.         STRING003 = RTrim(STRING003, " ")
  255.         Gosub LABEL013
  256.         WORD002 = WORD002 + Random(50)
  257.         If (!BOOLEAN001 && (WORD002 > 40000)) Then
  258.             Gosub LABEL019
  259.             WORD002 = 0
  260.             Goto LABEL006
  261.         Endif
  262.         Goto LABEL006
  263.     Endif
  264.     If (STRING001 == 4) Then
  265.         BOOLEAN002 = 0
  266.         INTEGER010 = Time()
  267.         Gosub LABEL009
  268.         Goto LABEL007
  269.     Endif
  270.     If (STRING001 == 6) Then
  271.         BOOLEAN002 = 1
  272.         INTEGER010 = Time()
  273.         Gosub LABEL009
  274.         Goto LABEL007
  275.     Endif
  276.     If (STRING001 == " ") Then
  277.         STRING003 = ScrText(3, INTEGER001, 3, 0)
  278.         STRING003 = RTrim(STRING003, " ")
  279.         Gosub LABEL018
  280.         INTEGER010 = Time()
  281.         WORD002 = WORD002 + Random(49)
  282.         If (!BOOLEAN001 && (WORD002 > 40000)) Then
  283.             Gosub LABEL019
  284.             WORD002 = 0
  285.             Goto LABEL006
  286.         Endif
  287.         Goto LABEL006
  288.     Endif
  289.     INTEGER010 = Time()
  290.     Gosub LABEL009
  291.     Goto LABEL007
  292.     :LABEL009
  293.     If (INT003 < 1) INT003 = 1
  294.     If (INT003 + 19 > INT004) INT003 = INT004 - 19
  295.     If (INT004 < 25) INT003 = 1
  296.     INT002 = 3
  297.     INTEGER003 = 0
  298.     Color 27
  299.     If (BOOLEAN002) Then
  300.         AnsiPos 9, 2
  301.         Print " User "
  302.         AnsiPos 31, 2
  303.         Print "Status"
  304.     Else
  305.         AnsiPos 9, 2
  306.         Print "Status"
  307.         AnsiPos 31, 2
  308.         Print "User  "
  309.     Endif
  310.     INTEGER008 = Time()
  311.     For INT001 = INT003 To INT003 + 19
  312.         RdUNet INT001
  313.         AnsiPos 3, INT002
  314.         Color 30
  315.         STRING002 = UN_Stat()
  316.         INTEGER003 = INTEGER003 + Asc(STRING002)
  317.         If (STRING002 == 0) STRING003 = "(Inactive Node)"
  318.         If (((STRING002 == " ") || (STRING002 == "V")) || (STRING002 == "Y")) STRING003 = "No Caller This Node"
  319.         If (STRING002 == "A") STRING003 = "Available For Chat"
  320.         If (STRING002 == "B") STRING003 = "Out To DOS"
  321.         If (STRING002 == "C") STRING003 = "Chatting With Sysop"
  322.         If (STRING002 == "D") STRING003 = "Out Of Code In Door"
  323.         If (STRING002 == "E") STRING003 = "Entering A Message"
  324.         If (STRING002 == "F") STRING003 = "Viewing A File"
  325.         If (STRING002 == "G") STRING003 = "Chatting With Group"
  326.         If (STRING002 == "H") STRING003 = "Handling Mail"
  327.         If (STRING002 == "L") STRING003 = "Logoff Pending"
  328.         If (STRING002 == "M") STRING003 = "Recvd Brdcst Msg"
  329.         If (STRING002 == "N") STRING003 = "Running Event"
  330.         If (STRING002 == "O") STRING003 = "Logging Into System"
  331.         If (STRING002 == "P") STRING003 = "Paging The Sysop"
  332.         If (STRING002 == "Q") STRING003 = "Run On Connect"
  333.         If (STRING002 == "R") STRING003 = "Recycle BBS"
  334.         If (STRING002 == "S") STRING003 = "Answering Script"
  335.         If (STRING002 == "T") STRING003 = "Transferring A File"
  336.         If (STRING002 == "U") STRING003 = "Unavailable For Chat"
  337.         If (STRING002 == "W") STRING003 = "Drop To Dos - Wait"
  338.         If (STRING002 == "X") STRING003 = "Drop To Dos - Now"
  339.         If (INT001 > INT004) STRING003 = "      ---"
  340.         If (BOOLEAN002) Then
  341.             If ((STRING002 < "A") || (STRING002 == "Z")) Then
  342.                 PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Oper(), 47)
  343.             Else
  344.                 Select Case (STRING002)
  345.                     Case "A", "U"
  346.                         PrintLn Left(String(INT001), 5), STRING002, " ", Left(UN_Name(), 20), " ", Left(UN_City(), 44)
  347.                     Case "H", "Q"
  348.                         PrintLn Left(String(INT001), 5), STRING002, " ", Left(STRING003, 20), " ", Left(UN_Name(), 44)
  349.                         If (STRING002 == "D") Then
  350.                             PrintLn Left(String(INT001), 5), STRING002, " ", Left(UN_Name(), 20), " ", Mid(UN_Oper(), InStr(UN_Oper(), "-") + 2, 44)
  351.                         Else
  352.                             PrintLn Left(String(INT001), 5), STRING002, " ", Left(UN_Name(), 20), " ", Left(UN_Oper(), 44)
  353.                         Endif
  354.                     Else
  355.                     Case "H"
  356.                         PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Name(), 47)
  357.                     Case ((STRING002 == " ") || (STRING002 == "N")) || (STRING002 == "D"), " ", "N", "D", " ", "Z", "V", "Y", "Q"
  358.                         PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Oper(), 47)
  359.                         Goto LABEL010
  360.                     Case Else
  361.                         PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Name() + " (" + UN_City() + ")", 47)
  362.                     Endif
  363.                 Endif
  364.         End Select
  365.         :LABEL010
  366.         Inc INT002
  367.     Next
  368.     Inc WORD001
  369.     :LABEL011
  370.     AnsiPos 71, 2
  371.     Print "@X1E", WORD001
  372.     Return
  373.     :LABEL012
  374.     If (INTEGER001 < 3) Then
  375.         INTEGER001 = 3
  376.         Return
  377.     Endif
  378.     If (INTEGER001 > 22) Then
  379.         INTEGER001 = 22
  380.         Return
  381.     Endif
  382.     AnsiPos 2, INTEGER002
  383.     Print STRING006
  384.     AnsiPos 2, INTEGER001
  385.     Print STRING004
  386.     AnsiPos 78, INTEGER002
  387.     Print STRING006
  388.     AnsiPos 78, INTEGER001
  389.     Print STRING005
  390.     INTEGER008 = Time()
  391.     INTEGER010 = Time()
  392.     Goto LABEL011
  393.     Return
  394.     :LABEL013
  395.     RdUNet STRING003
  396.     INTEGER007 = U_RecNum(UN_Name())
  397.     If (((INTEGER007 == -1) || (UN_Stat() < "A")) || (Left(UN_Name(), 1) < "@")) Then
  398.         If (!OnLocal()) Print Chr(7)
  399.         If (OnLocal()) Then
  400.             Sound 1000
  401.             Delay 1
  402.             Sound 0
  403.         Endif
  404.         Return
  405.     Endif
  406.     GetAltUser INTEGER007
  407.     STRING010 = STRING003
  408.     If (BOOLEAN003) Goto LABEL016
  409.     :LABEL014
  410.     Color 7
  411.     Cls
  412.     WORD002 = WORD002 + Random(25) + 25
  413.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  414.     PrintLn "@X10│ @X1B█▓▒░ @X1FUser Viewer - PCB @X1B░▒▓█                             @X1FUser Number:        @X19│@X0F"
  415.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  416.     PrintLn "@X10┌──────────────────────────────────────┬──────────────────────────────────────@X19┐@X0F"
  417.     PrintLn "@X10│@X1B  Name         [                    ] @X10│@X1B   Reg. Exp. Date[                  ] @X19│@X0F"
  418.     PrintLn "@X10│@X1B  From         [                    ] @X10│@X1B   Tot # of U/Ls [                  ] @X19│@X0F"
  419.     PrintLn "@X10│@X1B  B/D Phone    [                    ] @X10│@X1B   Tot # of D/Ls [                  ] @X19│@X0F"
  420.     PrintLn "@X10│@X1B  H/V Phone    [                    ] @X10│@X1B   Tot bytes U/L [                  ] @X19│@X0F"
  421.     PrintLn "@X10│@X1B  Expert Mode  [                    ] @X10│@X1B   Tot bytes D/L [                  ] @X19│@X0F"
  422.     PrintLn "@X10│@X1B  Def. Protocol[                    ] @X10│@X1B   Last Date On  [                  ] @X19│@X0F"
  423.     PrintLn "@X10│@X1B  Page Length  [                    ] @X10│@X1B   Last Time On  [                  ] @X19│@X0F"
  424.     PrintLn "@X10│@X1B  Security Lvl [                    ] @X10│@X1B   Total Logons  [                  ] @X19│@X0F"
  425.     PrintLn "@X10│@X1B  Expired Sec  [                    ] @X10│@X1B   Password      [                  ] @X19│@X0F"
  426.     PrintLn "@X10│@X1B  Verify Info  [                    ] @X10│@X1B   Alias         [                  ] @X19│@X0F"
  427.     PrintLn "@X10│@X1B  Pwrd Changes [                    ] @X10│@X1B   Last DIR Scan [                  ] @X19│@X0F"
  428.     PrintLn "@X10├──────────────────────────────────────┴──────────────────────────────────────@X19┤@X0F"
  429.     PrintLn "@X10│ @X1B         Comment 1  [                              ]                        @X19│@X0F"
  430.     PrintLn "@X10│ @X1B         Comment 2  [                              ]                        @X19│@X0F"
  431.     PrintLn "@X10├─────────────────────────────────────────────────────────────────────────────@X19┤@X0F"
  432.     PrintLn "@X10│                                                                             @X19│@X0F"
  433.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  434.     Color 31
  435.     AnsiPos 35, 2
  436.     Print "Node Number: @X1E", STRING003
  437.     AnsiPos 72, 2
  438.     Print INTEGER007
  439.     AnsiPos 18, 5
  440.     Print Left(U_Name(), 20)
  441.     AnsiPos 18, 6
  442.     Print Left(U_City, 20)
  443.     AnsiPos 18, 7
  444.     Print U_BDPhone
  445.     AnsiPos 18, 8
  446.     Print U_HVPhone
  447.     AnsiPos 18, 9
  448.     Print TSTRING013(U_Expert)
  449.     AnsiPos 18, 10
  450.     For INT001 = 1 To 15
  451.         If (U_Trans == TSTRING011(INT001)) Then
  452.             Print Left(TSTRING012(INT001), 20)
  453.             Break
  454.         Endif
  455.     Next
  456.     AnsiPos 18, 11
  457.     Print U_PageLen
  458.     AnsiPos 18, 12
  459.     If (U_Sec == 0) Then
  460.         Print " !! Locket Out !! "
  461.     Else
  462.         Print U_Sec
  463.     Endif
  464.     AnsiPos 18, 13
  465.     Print U_ExpSec
  466.     AnsiPos 18, 14
  467.     If (Psa(2)) Then
  468.         Print Left(U_Ver, 20)
  469.     Else
  470.         Print "N/A"
  471.     Endif
  472.     AnsiPos 18, 15
  473.     If (Psa(4)) Then
  474.         Print U_PwdTc()
  475.     Else
  476.         Print "N/A"
  477.     Endif
  478.     AnsiPos 59, 5
  479.     Print U_ExpDate
  480.     AnsiPos 59, 6
  481.     Print U_Ful()
  482.     AnsiPos 59, 7
  483.     Print U_Fdl()
  484.     AnsiPos 59, 8
  485.     Print U_Bul()
  486.     AnsiPos 59, 9
  487.     Print U_Bdl()
  488.     AnsiPos 59, 10
  489.     Print U_LDate()
  490.     AnsiPos 59, 11
  491.     Print U_LTime()
  492.     AnsiPos 59, 12
  493.     Print U_Logons()
  494.     AnsiPos 59, 13
  495.     Print U_Pwd
  496.     AnsiPos 59, 14
  497.     If (Psa(1)) Then
  498.         Print U_Alias
  499.     Else
  500.         Print "N/A"
  501.     Endif
  502.     AnsiPos 59, 15
  503.     Print U_LDir()
  504.     AnsiPos 24, 17
  505.     Print U_Cmnt1
  506.     AnsiPos 24, 18
  507.     Print U_Cmnt2
  508.     FReAltUser
  509.     AnsiPos 27, 20
  510.     KeyFlush
  511.     Print "@X1FHit <any> Key To Continue"
  512.     :LABEL015
  513.     STRING003 = Inkey()
  514.     If (STRING003 == "") Goto LABEL015
  515.     Return
  516.     :LABEL016
  517.     Color 23
  518.     Cls
  519.     WORD002 = WORD002 + Random(50) + 50
  520.     PrintLn "                           @X1F User Viewer - CMS @X17"
  521.     PrintLn "  User Number│                                       Password│"
  522.     PrintLn "  Name on BBS│                                       Times On│"
  523.     PrintLn "   First Name│                                       Security│"
  524.     PrintLn "  Middle Init│                                     Expiration│"
  525.     PrintLn "    Last Name│                                   Exp Security│"
  526.     PrintLn "      Company│                                               │"
  527.     PrintLn "    Address 1│                                Curr Membership│"
  528.     PrintLn "    Address 2│                                Curr Memb Start│"
  529.     PrintLn "         City│                              Membership Status│"
  530.     PrintLn "        State│                                Current Options│"
  531.     PrintLn "  Postal Code│                                               │"
  532.     PrintLn "  Voice Phone│                                Renewal Pending│"
  533.     PrintLn "    Fax Phone│                                  Renewal Start│"
  534.     PrintLn "   Birth Date│                                 Renewal Status│"
  535.     PrintLn "             │                                Renewal Options│"
  536.     PrintLn "  Acct Status│                                               │"
  537.     PrintLn " Acct Balance│                                   Auto Renewal│"
  538.     PrintLn " Member Since│                                   Auto Options│"
  539.     PrintLn "             │                                               │"
  540.     PrintLn "     Switches│                                  Attached Text│"
  541.     PrintLn 
  542.     FOpen 1, STRING017 + "." + Left(U_Name(), 1), 0, 0
  543.     INT001 = FileInf(STRING017 + "." + Left(U_Name(), 1), 4)
  544.     INT001 = INT001 / 29
  545.     BOOLEAN004 = 0
  546.     For INTEGER004 = 1 To INT001
  547.         FSeek 1, INTEGER004 * 29 - 29, 0
  548.         FRead 1, BIGSTR006, 29
  549.         If (Right(BIGSTR006, 25) == Left(U_Name(), 25)) Then
  550.             FSeek 1, INTEGER004 * 29 - 29, 0
  551.             FRead 1, INTEGER006, 4
  552.             BOOLEAN004 = 1
  553.             Break
  554.         Endif
  555.     Next
  556.     FClose 1
  557.     If (!BOOLEAN004) Goto LABEL014
  558.     INTEGER005 = INTEGER006 * 469 - 469
  559.     INTEGER014 = FileInf(STRING008, 4) / 469
  560.     FOpen 1, STRING008, 0, 0
  561.     FSeek 1, INTEGER005, 0
  562.     FRead 1, BIGSTR006, 469
  563.     Color 30
  564.     AnsiPos 16, 2
  565.     FSeek 1, INTEGER005, 0
  566.     FRead 1, INTEGER004, 4
  567.     Print INTEGER004
  568.     BIGSTR008 = String(INTEGER004)
  569.     AnsiPos 16, 3
  570.     Print Mid(BIGSTR006, 5, 25)
  571.     AnsiPos 16, 4
  572.     Print Mid(BIGSTR006, 32, 20)
  573.     AnsiPos 16, 5
  574.     Print Mid(BIGSTR006, 72, 1)
  575.     AnsiPos 16, 6
  576.     Print Mid(BIGSTR006, 52, 20)
  577.     AnsiPos 16, 7
  578.     Print Mid(BIGSTR006, 73, 30)
  579.     AnsiPos 16, 8
  580.     Print Mid(BIGSTR006, 103, 30)
  581.     AnsiPos 16, 9
  582.     Print Mid(BIGSTR006, 133, 30)
  583.     AnsiPos 16, 10
  584.     Print Mid(BIGSTR006, 163, 20)
  585.     AnsiPos 16, 11
  586.     Print Mid(BIGSTR006, 183, 20)
  587.     AnsiPos 16, 12
  588.     Print Mid(BIGSTR006, 203, 10)
  589.     AnsiPos 16, 13
  590.     If (Mid(BIGSTR006, 213, 5) == "     ") Then
  591.         Print "(000) ", Mid(BIGSTR006, 221, 3), "-", Mid(BIGSTR006, 224, 4)
  592.     Else
  593.         Print "(", Mid(BIGSTR006, 213, 3), ") ", Mid(BIGSTR006, 216, 3), "-", Mid(BIGSTR006, 219, 4)
  594.     Endif
  595.     AnsiPos 16, 14
  596.     If ((Mid(BIGSTR006, 228, 5) <> "     ") && (Mid(BIGSTR006, 228, 5) <> "00000")) Then
  597.         Print "(", Mid(BIGSTR006, 228, 3), ") ", Mid(BIGSTR006, 231, 3), "-", Mid(BIGSTR006, 234, 4)
  598.     Endif
  599.     AnsiPos 16, 15
  600.     FSeek 1, INTEGER005 + 451, 0
  601.     FRead 1, INTEGER004, 2
  602.     If ((INTEGER004 == 0) || (INTEGER004 == 7305)) Then
  603.         Print "Unknown"
  604.     Else
  605.         Print ToDate(INTEGER004 + 29219)
  606.     Endif
  607.     AnsiPos 16, 17
  608.     If (Mid(BIGSTR006, 30, 1) <> "X") Then
  609.         Print "Active"
  610.     Else
  611.         Print "Deleted"
  612.     Endif
  613.     AnsiPos 16, 18
  614.     FSeek 1, INTEGER005 + 383, 0
  615.     FRead 1, INTEGER004, 4
  616.     Print ToMoney(INTEGER004)
  617.     AnsiPos 16, 19
  618.     FSeek 1, INTEGER005 + 418, 0
  619.     FRead 1, INTEGER004, 2
  620.     If ((((INTEGER004 == 0) || (INTEGER004 == 7305)) || (INTEGER004 == 16777216)) || (INTEGER004 == 805306368)) Then
  621.         Print "00-00-00"
  622.     Else
  623.         Print ToDate(INTEGER004 + 29219)
  624.     Endif
  625.     AnsiPos 16, 21
  626.     BIGSTR007 = Mid(BIGSTR006, 448, 1)
  627.     For INTEGER004 = 7 To 0 Step -1
  628.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  629.             Print "@X1EO"
  630.             Continue
  631.         Endif
  632.         Print "@X16o"
  633.     Next
  634.     BIGSTR007 = Mid(BIGSTR006, 449, 1)
  635.     For INTEGER004 = 7 To 0 Step -1
  636.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  637.             Print "@X1EO"
  638.             Continue
  639.         Endif
  640.         Print "@X16o"
  641.     Next
  642.     Color 28
  643.     AnsiPos 64, 2
  644.     Print U_Pwd
  645.     AnsiPos 64, 3
  646.     Print U_Logons()
  647.     AnsiPos 64, 4
  648.     Print U_Sec
  649.     AnsiPos 64, 5
  650.     Print U_ExpDate
  651.     AnsiPos 64, 6
  652.     Print U_ExpSec
  653.     Color 30
  654.     AnsiPos 64, 8
  655.     If (Mid(BIGSTR006, 418, 1) == " ") Then
  656.         Print "None"
  657.     Else
  658.         Print "Type ", Mid(BIGSTR006, 418, 1)
  659.     Endif
  660.     AnsiPos 64, 9
  661.     FSeek 1, INTEGER005 + 438, 0
  662.     FRead 1, INTEGER004, 2
  663.     If ((((INTEGER004 == 0) || (INTEGER004 == 7305)) || (INTEGER004 == 16777216)) || (INTEGER004 == 805306368)) Then
  664.         Print "00-00-00"
  665.     Else
  666.         Print ToDate(INTEGER004 + 29219)
  667.     Endif
  668.     AnsiPos 64, 10
  669.     If (Mid(BIGSTR006, 421, 1) == 0) Print "n/a"
  670.     If (Mid(BIGSTR006, 421, 1) == 1) Print "Active"
  671.     If (Mid(BIGSTR006, 421, 1) == 2) Print "Ready for use"
  672.     If (Mid(BIGSTR006, 421, 1) == 3) Print "Waiting op Ok"
  673.     AnsiPos 64, 11
  674.     BIGSTR007 = Mid(BIGSTR006, 422, 1)
  675.     For INTEGER004 = 7 To 0 Step -1
  676.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  677.             Print "@X1EO"
  678.             Continue
  679.         Endif
  680.         Print "@X16o"
  681.     Next
  682.     BIGSTR007 = Mid(BIGSTR006, 423, 1)
  683.     For INTEGER004 = 7 To 0 Step -1
  684.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  685.             Print "@X1EO"
  686.             Continue
  687.         Endif
  688.         Print "@X16o"
  689.     Next
  690.     Color 30
  691.     AnsiPos 64, 13
  692.     If (Mid(BIGSTR006, 430, 1) == " ") Then
  693.         Print "None"
  694.     Else
  695.         Print "Type ", Mid(BIGSTR006, 430, 1)
  696.     Endif
  697.     AnsiPos 64, 14
  698.     FSeek 1, INTEGER005 + 453, 0
  699.     FRead 1, INTEGER004, 2
  700.     If ((((INTEGER004 == 0) || (INTEGER004 == 7305)) || (INTEGER004 == 16777216)) || (INTEGER004 == 805306368)) Then
  701.         Print "00-00-00"
  702.     Else
  703.         Print ToDate(INTEGER004 + 29219)
  704.     Endif
  705.     AnsiPos 64, 15
  706.     If (Mid(BIGSTR006, 456, 1) == 0) Print "n/a"
  707.     If (Mid(BIGSTR006, 456, 1) == 1) Print "Ready for use"
  708.     If (Mid(BIGSTR006, 456, 1) == 2) Print "Waiting op OK"
  709.     AnsiPos 64, 16
  710.     BIGSTR007 = Mid(BIGSTR006, 431, 1)
  711.     For INTEGER004 = 7 To 0 Step -1
  712.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  713.             Print "@X1EO"
  714.             Continue
  715.         Endif
  716.         Print "@X16o"
  717.     Next
  718.     BIGSTR007 = Mid(BIGSTR006, 432, 1)
  719.     For INTEGER004 = 7 To 0 Step -1
  720.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  721.             Print "@X1EO"
  722.             Continue
  723.         Endif
  724.         Print "@X16o"
  725.     Next
  726.     Color 30
  727.     AnsiPos 64, 18
  728.     If (Mid(BIGSTR006, 443, 1) == " ") Then
  729.         Print "Not selected"
  730.     Else
  731.         Print "Type ", Mid(BIGSTR006, 443, 1)
  732.     Endif
  733.     AnsiPos 64, 19
  734.     BIGSTR007 = Mid(BIGSTR006, 444, 1)
  735.     For INTEGER004 = 7 To 0 Step -1
  736.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  737.             Print "@X1EO"
  738.             Continue
  739.         Endif
  740.         Print "@X16o"
  741.     Next
  742.     BIGSTR007 = Mid(BIGSTR006, 445, 1)
  743.     For INTEGER004 = 7 To 0 Step -1
  744.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  745.             Print "@X1EO"
  746.             Continue
  747.         Endif
  748.         Print "@X16o"
  749.     Next
  750.     Color 30
  751.     AnsiPos 64, 21
  752.     If (!Exist(STRING009 + BIGSTR008 + ".NOT") && !Exist(STRING009 + BIGSTR008 + ".MSG")) Print "None"
  753.     If (!Exist(STRING009 + BIGSTR008 + ".NOT") && Exist(STRING009 + BIGSTR008 + ".MSG")) Print "Message"
  754.     If (Exist(STRING009 + BIGSTR008 + ".NOT") && !Exist(STRING009 + BIGSTR008 + ".MSG")) Print "Note"
  755.     If (Exist(STRING009 + BIGSTR008 + ".NOT") && Exist(STRING009 + BIGSTR008 + ".MSG")) Print "Note & Msg"
  756.     AnsiPos 1, 22
  757.     STRING003 = "Record " + String(INTEGER006) + " of " + String(INTEGER014)
  758.     Print Space((74 - Len(STRING003)) / 2), "@X17", STRING003
  759.     AnsiPos 13, 23
  760.     Print "@X1FHit Enter For PCB View or Any Other Key To Continue"
  761.     FClose 1
  762.     KeyFlush
  763.     :LABEL017
  764.     STRING003 = Inkey()
  765.     If (STRING003 == "") Goto LABEL017
  766.     If (STRING003 == Chr(13)) Then
  767.         STRING003 = STRING010
  768.         Goto LABEL014
  769.     Endif
  770.     FReAltUser
  771.     Return
  772.     :LABEL018
  773.     If (STRING003 > MaxNode()) Then
  774.         If (OnLocal()) Then
  775.             Sound 1000
  776.             Delay 1
  777.             Sound 0
  778.         Endif
  779.         If (!OnLocal()) Print Chr(7)
  780.         Return
  781.     Endif
  782.     RdUNet STRING003
  783.     Color 7
  784.     Cls
  785.     WORD002 = WORD002 + Random(25) + 25
  786.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────┐"
  787.     PrintLn "│@X1F Change Node Info - Node #                                                 @X19│"
  788.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘"
  789.     PrintLn Space(77)
  790.     PrintLn " @X1EName@X1F      @X1E:@X1F @X0F                         @X1F                                       "
  791.     PrintLn Space(77)
  792.     PrintLn " @X1ECity@X1F      @X1E:@X1F @X0F                        @X1F                                        "
  793.     PrintLn Space(77)
  794.     PrintLn " @X1EOperation@X1F @X1E:@X1F @X0F                                                @X1F                "
  795.     PrintLn Space(77)
  796.     PrintLn " @X1EStatus@X1F    @X1E:@X1F @X0F @X1F  (See Below)                                                  "
  797.     PrintLn Space(77)
  798.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────┐"
  799.     PrintLn "│@X1F            Make Desired Changes And Hit Enter                             @X19│"
  800.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘"
  801.     PrintLn "@X07"
  802.     PrintLn "  A = Available For Chat   L = Logoff Pending       T = Transferring A file"
  803.     PrintLn "  B = Drop To DOS          M = Recvd Brdcst Msg     U = Unavailble For Chat"
  804.     PrintLn "  C = Chatting With Sysop  N = Running An Event     V = No Caller Online"
  805.     PrintLn "  D = Out Of Code In Door  O = Logging Into System  W = Drop To Dos - Wait"
  806.     PrintLn "  E = Entering A Message   P = Paging The Sysop     X = Drop To Dos - Now"
  807.     PrintLn "  F = Viewing A File       R = Recycle BBS          Y = No Caller (Clear)"
  808.     Print "  G = Chatting With Group  S = Answering A Script   Z = Inactive Node"
  809.     AnsiPos 29, 2
  810.     Print "@X1F", STRING003
  811.     AnsiPos 14, 5
  812.     Print "@X0F", UN_Name()
  813.     AnsiPos 14, 7
  814.     Print UN_City()
  815.     AnsiPos 14, 9
  816.     Print UN_Oper()
  817.     AnsiPos 14, 11
  818.     Print UN_Stat()
  819.     AnsiPos 14, 5
  820.     BIGSTR002 = 1
  821.     BIGSTR003 = 1
  822.     BIGSTR004 = 1
  823.     BIGSTR001 = ""
  824.     InputStr "_", BIGSTR002, 15, 25, Mask_Ascii(), 0
  825.     AnsiPos 14, 5
  826.     If (Left(BIGSTR002, 1) == 1) Then
  827.         BIGSTR002 = UN_Name()
  828.         Print UN_Name()
  829.     Else
  830.         Print Left(BIGSTR002, 25)
  831.     Endif
  832.     AnsiPos 14, 7
  833.     InputStr "_", BIGSTR003, 15, 24, Mask_Ascii(), 0
  834.     AnsiPos 14, 7
  835.     If (Left(BIGSTR003, 1) == 1) Then
  836.         BIGSTR003 = UN_City()
  837.         Print UN_City()
  838.     Else
  839.         Print Left(BIGSTR003, 24)
  840.     Endif
  841.     AnsiPos 14, 9
  842.     InputStr "_", BIGSTR004, 15, 48, Mask_Ascii(), 0
  843.     AnsiPos 14, 9
  844.     If (Left(BIGSTR004, 1) == 1) Then
  845.         BIGSTR004 = UN_Oper()
  846.         Print UN_Oper()
  847.     Else
  848.         Print Left(BIGSTR004, 48)
  849.     Endif
  850.     AnsiPos 14, 11
  851.     InputStr "_", BIGSTR001, 15, 1, "ABCDEFGHLMNOPRSTUVWXYZabcdefghlmnoprstuvwxyz", 8
  852.     AnsiPos 14, 11
  853.     If (BIGSTR001 == "") Then
  854.         BIGSTR001 = UN_Stat()
  855.         Print UN_Stat()
  856.     Else
  857.         Print BIGSTR001
  858.     Endif
  859.     AnsiPos 19, 14
  860.     Print "@X1F", Space(29)
  861.     AnsiPos 19, 14
  862.     InputStr "Changes (y/N) ", STRING016, 31, 1, "YNyn", 0
  863.     If ((STRING016 <> "Y") && (STRING016 <> "y")) Return
  864.     If (((BIGSTR001 == "V") || (BIGSTR001 == "Y")) || (BIGSTR001 == "Z")) Then
  865.         BIGSTR002 = ""
  866.         BIGSTR003 = ""
  867.         If (BIGSTR001 <> "V") BIGSTR004 = ""
  868.         If (BIGSTR001 == "Z") BIGSTR001 = Chr(0)
  869.         If ((BIGSTR001 == "V") || (BIGSTR001 == "Y")) BIGSTR001 = " "
  870.     Endif
  871.     WrUNet STRING003, BIGSTR001, BIGSTR002, BIGSTR003, BIGSTR004, ""
  872.     INTEGER012 = MaxNode() / 8
  873.     If (INTEGER012 * 8 < MaxNode()) Inc INTEGER012
  874.     BIGSTR005 = Space(INTEGER012)
  875.     INTEGER013 = INTEGER012 + 6
  876.     FOpen 1, STRING015, 2, 0
  877.     FSeek 1, INTEGER013, 0
  878.     FRead 1, BIGSTR005, Len(BIGSTR005)
  879.     If (BIGSTR004 <> "Z") Then
  880.         BitSet BIGSTR005, STRING003 - 1
  881.     Else
  882.         BitClear BIGSTR005, STRING003 - 1
  883.     Endif
  884.     FSeek 1, INTEGER013, 0
  885.     FWrite 1, BIGSTR005, Len(BIGSTR005)
  886.     FClose 1
  887.     Return
  888.     End
  889.     :LABEL019
  890.     Color 7
  891.     Cls
  892.     PrintLn 
  893.     PrintLn 
  894.     PrintLn 
  895.     PrintLn "@POS:24@@X0C┌───────────────────────────────┐"
  896.     PrintLn "@POS:24@@X0C│                               │"
  897.     PrintLn "@POS:24@@X0C│        @X0EAbout UltraMoni        @X0C│"
  898.     PrintLn "@POS:24@@X0C│          @X0FVersion 1.4          @X0C│"
  899.     PrintLn "@POS:24@@X0C│      @X0A───────────────────      @X0C│"
  900.     PrintLn "@POS:24@@X0C│                               │"
  901.     PrintLn "@POS:24@@X0C│  @X0FIf you find this program of  @X0C│"
  902.     PrintLn "@POS:24@@X0C│    @X0Fvalue, please consider     @X0C│"
  903.     PrintLn "@POS:24@@X0C│  @X0Fregistering it. Thank you!   @X0C│"
  904.     PrintLn "@POS:24@@X0C│                               │"
  905.     PrintLn "@POS:24@@X0C│ @X0BProgrammed by: Gerry Schechter@X0C│"
  906.     PrintLn "@POS:24@@X0C│                               │"
  907.     PrintLn "@POS:24@@X0C└───────────────────────────────┘"
  908.     PrintLn 
  909.     Print Space(26)
  910.     KeyFlush
  911.     Wait
  912.     Return
  913.     STRING001 = "Registered To: UNREGISTERED"
  914.     STRING001 = " UltraMoni v1.4 - (C) 1994 Gerry Schechter "
  915.  
  916. ;------------------------------------------------------------------------------
  917. ;
  918. ; Usage report (before postprocessing)
  919. ;
  920. ; ■ Statements used :
  921. ;
  922. ;    6       End
  923. ;    6       Cls
  924. ;    1       Wait
  925. ;    14      Color 
  926. ;    158     Goto 
  927. ;    161     Let 
  928. ;    124     Print 
  929. ;    121     PrintLn 
  930. ;    135     If 
  931. ;    3       FOpen 
  932. ;    5       FClose 
  933. ;    1       StartDisp 
  934. ;    1       GetUser
  935. ;    1       DefColor
  936. ;    5       Log 
  937. ;    5       InputStr 
  938. ;    18      Gosub 
  939. ;    11      Return
  940. ;    2       Delay 
  941. ;    7       Inc 
  942. ;    2       Dec 
  943. ;    4       GetToken 
  944. ;    1       KbdChkOn
  945. ;    1       KbdChkOff
  946. ;    3       RdUNet 
  947. ;    1       WrUNet 
  948. ;    88      AnsiPos 
  949. ;    4       Sound 
  950. ;    11      FSeek 
  951. ;    10      FRead 
  952. ;    1       FWrite 
  953. ;    3       KeyFlush
  954. ;    1       GetAltUser 
  955. ;    1       BitSet 
  956. ;    1       BitClear 
  957. ;    2       FReAltUser
  958. ;
  959. ;
  960. ; ■ Functions used :
  961. ;
  962. ;    27      -
  963. ;    4       *
  964. ;    4       /
  965. ;    70      +
  966. ;    12      -
  967. ;    99      ==
  968. ;    11      <>
  969. ;    24      <
  970. ;    11      <=
  971. ;    7       >
  972. ;    22      >=
  973. ;    92      !
  974. ;    33      &&
  975. ;    40      ||
  976. ;    7       Len(
  977. ;    44      Mid()
  978. ;    42      Left()
  979. ;    4       Right()
  980. ;    9       Space()
  981. ;    6       Chr()
  982. ;    1       Asc()
  983. ;    2       InStr()
  984. ;    3       RTrim()
  985. ;    6       Random()
  986. ;    19      Time()
  987. ;    4       U_Name()
  988. ;    1       U_LDate()
  989. ;    1       U_LTime()
  990. ;    1       U_LDir()
  991. ;    2       U_Logons()
  992. ;    1       U_Ful()
  993. ;    1       U_Fdl()
  994. ;    1       U_Bdl()
  995. ;    1       U_Bul()
  996. ;    3       Inkey()
  997. ;    11      String()
  998. ;    3       Mask_Ascii()
  999. ;    2       PCBDat()
  1000. ;    1       PPEPath()
  1001. ;    4       ReadLine()
  1002. ;    1       SysopSec()
  1003. ;    4       OnLocal()
  1004. ;    5       UN_Stat()
  1005. ;    11      UN_Name()
  1006. ;    5       UN_City()
  1007. ;    8       UN_Oper()
  1008. ;    9       Exist()
  1009. ;    1       AnsiOn()
  1010. ;    1       U_PwdTc()
  1011. ;    3       Psa()
  1012. ;    2       FileInf()
  1013. ;    4       MaxNode()
  1014. ;    1       U_RecNum()
  1015. ;    3       ScrText()
  1016. ;    4       ToDate()
  1017. ;    1       ToMoney()
  1018. ;    8       IsBitSet()
  1019. ;
  1020. ;------------------------------------------------------------------------------
  1021. ;
  1022. ; Analysis flags : RdHs
  1023. ;
  1024. ; R - Read user ■ 5
  1025. ;     User records are read, this may signify that someone wants to get
  1026. ;     various informations about a user (for example his password), but
  1027. ;     this may also be normal for a program accessing user records (for
  1028. ;     example a User Editor)
  1029. ;     ■ Search for : GETALTUSER
  1030. ;
  1031. ; d - Access PCBOARD.DAT ■ 2
  1032. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1033. ;     for many PPE so they can find various informations on the system
  1034. ;     (system paths, max number of lines in messages, ...) but it may also
  1035. ;     be a way to gather vital informations.
  1036. ;     ■ Search for : PCBDAT()
  1037. ;
  1038. ; H - Read Password or Password History ■ 5
  1039. ;     Program is reading the user's password or last password history
  1040. ;     This may be ok for a password manager, but it is very suspect. Check!
  1041. ;     ■ Search for : U_PWDHIST, U_PWD
  1042. ;
  1043. ; s - Sysop level access ■ 5
  1044. ;     Program is reading the sysop access level, this may be normal
  1045. ;     but still it is very suspect. It is the best way to give a user
  1046. ;     all priviledges. Check!
  1047. ;     ■ Search for : SYSOPSEC()
  1048. ;
  1049. ;------------------------------------------------------------------------------
  1050. ;
  1051. ; Postprocessing report
  1052. ;
  1053. ;    11      For/Next
  1054. ;    0       While/EndWhile
  1055. ;    64      If/Then or If/Then/Else
  1056. ;    1       Select Case
  1057. ;
  1058. ;------------------------------------------------------------------------------
  1059. ;                 AEGiS Corp - Break the routines, code against the machines!
  1060. ;------------------------------------------------------------------------------
  1061.